Triplanar Mapping
yz平面・zx平面・xy平面それぞれでテクスチャマッピングを行い、法線を利用してそれらをブレンディングする GLSL
code:glsl
vec4 triplanarMapping(sampler2D sampler, vec3 p, vec3 n, float k) {
mat4 m = mat4(
texture(sampler, p.yz),
texture(sampler, p.zx),
texture(sampler, p.xy),
vec4(0.0)
);
vec4 weight = vec4(pow(abs(n), vec3(k)), 0.0);
return m * weight / dot(weight, vec4(1.0));
}
https://gyazo.com/a626917e99548f9ea19dcc1e30fbdf5e